1
La puissance de l'introspection
AI035Lesson 15
00:00

En Ruby, le code n'est pas seulement un script statique—c'est un système vivant. introspection est le superpouvoir qui permet aux objets de posséder une 'connaissance de soi', les transformant de boîtes noires en cartes fonctionnelles consultables. Même les valeurs immédiates telles que les entiers peuvent être interrogées sur leur héritage et leurs capacités à l'exécution.

1. L'interface vivante

En appelant obj.methods(regular=true), nous accédons au vocabulaire fonctionnel complet d'un objet. Un objet Range simple (r = 1..10) révèle un nombre impressionnant de 68 méthodes distinctes, reflétant son héritage riche depuis Object et le Enumerable mix-in.

Barre latérale [A]TableauAtan2Chargement automatiqueClasse Tableau < ObjetEnumerableSignature de méthode : Tableau#packEntrée : chaîne de modèleSortie : chaîne binaire

2. Découverte dynamique

La méthode respond_to? agit comme un gardien à l'exécution, permettant Typage de canard. Plutôt que de demander « Qu'est-ce que tu es ? », nous demandons « Peux-tu faire cela ? ». Cette flexibilité permet aux programmes de s'adapter selon les capacités réelles, par exemple vérifier si une chaîne répond à des symboles semblables à l'affectation (=) ou si une valeur numérique prend en charge une requête spécifique Requête hiérarchique.

3. Le pont de la méta-documentation

Des outils comme RDoc utilisent ces fonctionnalités pour générer dispositions de listes alphabétiques et des diagrammes de signatures de méthode automatiquement. En interrogeant constantes de module et variables d'instance, les développeurs peuvent naviguer dans toute la structure d'espace de noms de manière programmatique, comblant ainsi le fossé entre les fichiers sources et l'exécution active.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>